include_defs('//lib/js.defs')

WCT_TEST_PATTERNS = [
  'test/*.js',
  'test/*.html',
  '**/*_test.html',
]
PY_TEST_PATTERNS = ['polygerrit_wct_tests.py']
APP_SRCS = glob(
  ['**'],
  excludes = [
    'BUCK',
    'index.html',
    'test/**',
  ] + WCT_TEST_PATTERNS + PY_TEST_PATTERNS)

WEBJS = 'bower_components/webcomponentsjs/webcomponents-lite.js'

# TODO(dborowitz): Putting these rules in this package avoids having to handle
# the app/ prefix like we would have to if this were in the parent directory.
# The only reason for the app subdirectory in the first place was convenience
# when witing server.go; when that goes away, we can just move all the files and
# these rules up one directory.
genrule(
  name = 'polygerrit_ui',
  cmd = ' && '.join([
    'mkdir $TMP/polygerrit_ui',
    'cd $TMP/polygerrit_ui',
    'mkdir -p {fonts,elements,bower_components/webcomponentsjs}',
    'unzip -qd fonts $(location //polygerrit-ui:fonts)',
    'unzip -qd elements $(location :gr-app)',
    'cp -rp $SRCDIR/* .',
    'unzip -p $(location //polygerrit-ui:polygerrit_components) %s>%s' % (WEBJS, WEBJS),
    'cd $TMP',
    'zip -9qr $OUT .',
  ]),
  srcs = glob([
    'favicon.ico',
    'index.html',
    'styles/**/*.css'
  ]),
  out = 'polygerrit_ui.zip',
  visibility = ['PUBLIC'],
)

vulcanize(
  name = 'gr-app',
  app = 'elements/gr-app.html',
  srcs = APP_SRCS,
  components = '//polygerrit-ui:polygerrit_components',
)

bower_components(
  name = 'test_components',
  deps = [
    '//polygerrit-ui:polygerrit_components',
    '//lib/js:iron-test-helpers',
    '//lib/js:test-fixture',
    '//lib/js:web-component-tester',
  ],
)

genrule(
  name = 'test_resources',
  cmd = ' && '.join([
    'cd $TMP',
    'unzip -q $(location :test_components)',
    'cp -r $SRCDIR/* .',
    'zip -r $OUT .',
  ]),
  srcs = APP_SRCS + glob(WCT_TEST_PATTERNS),
  out = 'test_resources.zip',
)

python_test(
  name = 'polygerrit_tests',
  srcs = glob(PY_TEST_PATTERNS),
  resources = [':test_resources'],
  labels = [
    'manual',
    'web',
  ],
)
